{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 这是一份用户消费行为分析报告"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>user_id</th>\n      <th>order_dt</th>\n      <th>order_product</th>\n      <th>order_amount</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n      <td>19970101</td>\n      <td>1</td>\n      <td>11.77</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>2</td>\n      <td>19970112</td>\n      <td>1</td>\n      <td>12.00</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>2</td>\n      <td>19970112</td>\n      <td>5</td>\n      <td>77.00</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>3</td>\n      <td>19970102</td>\n      <td>2</td>\n      <td>20.76</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>3</td>\n      <td>19970330</td>\n      <td>2</td>\n      <td>20.76</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "   user_id  order_dt  order_product  order_amount\n0        1  19970101              1         11.77\n1        2  19970112              1         12.00\n2        2  19970112              5         77.00\n3        3  19970102              2         20.76\n4        3  19970330              2         20.76"
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\r\n",
    "import numpy as np\r\n",
    "colums = ['user_id','order_dt','order_product','order_amount']\r\n",
    "df = pd.read_csv('D:\\study_notes\\master\\data\\CDNOW_master.txt',names=colums,sep='\\s+')\r\n",
    "df.head(5)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- user_id:用户ID\r\n",
    "- order_dt:购买日期\r\n",
    "- order_products:购买产品数\r\n",
    "- order_amount:购买金额"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 69659 entries, 0 to 69658\n",
      "Data columns (total 4 columns):\n",
      " #   Column         Non-Null Count  Dtype  \n",
      "---  ------         --------------  -----  \n",
      " 0   user_id        69659 non-null  int64  \n",
      " 1   order_dt       69659 non-null  int64  \n",
      " 2   order_product  69659 non-null  int64  \n",
      " 3   order_amount   69659 non-null  float64\n",
      "dtypes: float64(1), int64(3)\n",
      "memory usage: 2.1 MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>user_id</th>\n      <th>order_dt</th>\n      <th>order_product</th>\n      <th>order_amount</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>count</th>\n      <td>69659.000000</td>\n      <td>6.965900e+04</td>\n      <td>69659.000000</td>\n      <td>69659.000000</td>\n    </tr>\n    <tr>\n      <th>mean</th>\n      <td>11470.854592</td>\n      <td>1.997228e+07</td>\n      <td>2.410040</td>\n      <td>35.893648</td>\n    </tr>\n    <tr>\n      <th>std</th>\n      <td>6819.904848</td>\n      <td>3.837735e+03</td>\n      <td>2.333924</td>\n      <td>36.281942</td>\n    </tr>\n    <tr>\n      <th>min</th>\n      <td>1.000000</td>\n      <td>1.997010e+07</td>\n      <td>1.000000</td>\n      <td>0.000000</td>\n    </tr>\n    <tr>\n      <th>25%</th>\n      <td>5506.000000</td>\n      <td>1.997022e+07</td>\n      <td>1.000000</td>\n      <td>14.490000</td>\n    </tr>\n    <tr>\n      <th>50%</th>\n      <td>11410.000000</td>\n      <td>1.997042e+07</td>\n      <td>2.000000</td>\n      <td>25.980000</td>\n    </tr>\n    <tr>\n      <th>75%</th>\n      <td>17273.000000</td>\n      <td>1.997111e+07</td>\n      <td>3.000000</td>\n      <td>43.700000</td>\n    </tr>\n    <tr>\n      <th>max</th>\n      <td>23570.000000</td>\n      <td>1.998063e+07</td>\n      <td>99.000000</td>\n      <td>1286.010000</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "            user_id      order_dt  order_product  order_amount\ncount  69659.000000  6.965900e+04   69659.000000  69659.000000\nmean   11470.854592  1.997228e+07       2.410040     35.893648\nstd     6819.904848  3.837735e+03       2.333924     36.281942\nmin        1.000000  1.997010e+07       1.000000      0.000000\n25%     5506.000000  1.997022e+07       1.000000     14.490000\n50%    11410.000000  1.997042e+07       2.000000     25.980000\n75%    17273.000000  1.997111e+07       3.000000     43.700000\nmax    23570.000000  1.998063e+07      99.000000   1286.010000"
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.describe()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 大部分订单只消费了少量商品（平均2.4），有一定极值干扰\r\n",
    "- 用户的消费金额比较稳定，平均消费35元，中位数在35元，有一定的极值干扰"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>user_id</th>\n      <th>order_dt</th>\n      <th>order_product</th>\n      <th>order_amount</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n      <td>1997-01-01</td>\n      <td>1</td>\n      <td>11.77</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>2</td>\n      <td>1997-01-12</td>\n      <td>1</td>\n      <td>12.00</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>2</td>\n      <td>1997-01-12</td>\n      <td>5</td>\n      <td>77.00</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>3</td>\n      <td>1997-01-02</td>\n      <td>2</td>\n      <td>20.76</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>3</td>\n      <td>1997-03-30</td>\n      <td>2</td>\n      <td>20.76</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "   user_id   order_dt  order_product  order_amount\n0        1 1997-01-01              1         11.77\n1        2 1997-01-12              1         12.00\n2        2 1997-01-12              5         77.00\n3        3 1997-01-02              2         20.76\n4        3 1997-03-30              2         20.76"
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['order_dt']=pd.to_datetime(df.order_dt,format='%Y%m%d')\r\n",
    "df.head()\r\n",
    "# help(pd.to_datetime) 查询函数功能，可以用help函数查询"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "<class 'pandas.core.frame.DataFrame'>\n",
      "RangeIndex: 69659 entries, 0 to 69658\n",
      "Data columns (total 4 columns):\n",
      " #   Column         Non-Null Count  Dtype         \n",
      "---  ------         --------------  -----         \n",
      " 0   user_id        69659 non-null  int64         \n",
      " 1   order_dt       69659 non-null  datetime64[ns]\n",
      " 2   order_product  69659 non-null  int64         \n",
      " 3   order_amount   69659 non-null  float64       \n",
      "dtypes: datetime64[ns](1), float64(1), int64(2)\n",
      "memory usage: 2.1 MB\n"
     ]
    }
   ],
   "source": [
    "df.info()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 进行用户消费趋势分析（按月）\r\n",
    "- 每月的消费总金额\r\n",
    "- 每月的消费次数\r\n",
    "- 每月的产品购买量\r\n",
    "- 每月的消费人数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "order_dt\n1997-01-01    7515.35\n1997-01-02    8025.95\n1997-01-03    7475.04\n1997-01-04    6722.93\n1997-01-05    9274.80\nName: order_amount, dtype: float64"
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "grouped_month = df.groupby('order_dt')\r\n",
    "order_month = grouped_month.order_amount.sum()\r\n",
    "order_month.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": "<AxesSubplot:xlabel='order_dt'>"
     },
     "execution_count": 67,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": "<Figure size 432x288 with 1 Axes>"
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#加载数据可视化包(最好在第一块代码区完成加载库和包)\r\n",
    "from matplotlib import pyplot as plt\r\n",
    "import matplotlib\r\n",
    "plt.style.use('ggplot')\r\n",
    "order_month.plot()\r\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "- 由上图可知，消费金额在前三个月达到最高峰，后续消费额较为稳定，有轻微下降趋势。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": "<div>\n<style scoped>\n    .dataframe tbody tr th:only-of-type {\n        vertical-align: middle;\n    }\n\n    .dataframe tbody tr th {\n        vertical-align: top;\n    }\n\n    .dataframe thead th {\n        text-align: right;\n    }\n</style>\n<table border=\"1\" class=\"dataframe\">\n  <thead>\n    <tr style=\"text-align: right;\">\n      <th></th>\n      <th>user_id</th>\n      <th>order_dt</th>\n      <th>order_product</th>\n      <th>order_amount</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>1</td>\n      <td>1997-01-01</td>\n      <td>1</td>\n      <td>11.77</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>2</td>\n      <td>1997-01-12</td>\n      <td>1</td>\n      <td>12.00</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>2</td>\n      <td>1997-01-12</td>\n      <td>5</td>\n      <td>77.00</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>3</td>\n      <td>1997-01-02</td>\n      <td>2</td>\n      <td>20.76</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>3</td>\n      <td>1997-03-30</td>\n      <td>2</td>\n      <td>20.76</td>\n    </tr>\n  </tbody>\n</table>\n</div>",
      "text/plain": "   user_id   order_dt  order_product  order_amount\n0        1 1997-01-01              1         11.77\n1        2 1997-01-12              1         12.00\n2        2 1997-01-12              5         77.00\n3        3 1997-01-02              2         20.76\n4        3 1997-03-30              2         20.76"
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.8.5 64-bit ('base': conda)",
   "name": "python385jvsc74a57bd0ae7890921ac3c17143ff000ac7152addc6614e2051824da39aa37dab63d26d82"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  },
  "orig_nbformat": 2
 },
 "nbformat": 4,
 "nbformat_minor": 2
}